package com.ushine.web.communication.netty.service;

import com.ushine.web.communication.netty.proto.Message;

/**
 * @Author: yls
 * @Date 2022/5/11 10:01
 * @Description: 通信服务
 * @Version 1.0
 **/
public interface INettyService {
    /**
     * 功能描述:
     * 〈 检查主机序列号 〉
     *
     * @param ip ip地址
     * @param serialNumber 主机序列号
     * @return : boolean
     * @author : yls
     * @date : 2022/5/11 10:35
     */
    boolean checkSerialNumber(String ip, String serialNumber);

    /**
     * 功能描述:
     * 〈 注册序列号 〉
     *
     * @param serialNumber 主机序列号
     * @return : void
     * @author : yls
     * @date : 2022/5/11 10:36
     */
    void regist(String serialNumber);

    /**
     * 功能描述:
     * 〈 退出操作 〉
     *
     * @param serialNumber 主机序列号
     * @return : void
     * @author : yls
     * @date : 2022/5/11 10:36
     */
    void logOut(String serialNumber);

    /**
     * 功能描述:
     * 〈获取数据〉
     *
     * @param instruction 数据包
     * @return : void
     * @author : yls
     * @date : 2022/5/11 10:37
     */
    void readData(Message.Instruction instruction);

    /**
     * 功能描述:
     * 〈 发送版本信息 〉
     *
     * @param serialNumber 主机序列号
     * @return : void
     * @author : yls
     * @date : 2022/5/11 10:42
     */
    void sendVersion(String serialNumber);

    /**
     * 功能描述:
     * 〈〉
     *
     * @param serialNumber 主机序列号
     * @param contentId 内容id
     * @param categoryId 类别id
     * @param resourceId 资源id
     * @return : boolean
     * @author : yls
     * @date : 2022/5/11 10:43
     */
    boolean sendData(String serialNumber, int contentId, int categoryId, int resourceId);

}
